home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / awt / OrientableFlowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.7 KB  |  177 lines

  1. package sun.awt;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.FlowLayout;
  7. import java.awt.Insets;
  8.  
  9. public class OrientableFlowLayout extends FlowLayout {
  10.    public static final int HORIZONTAL = 0;
  11.    public static final int VERTICAL = 1;
  12.    public static final int TOP = 0;
  13.    public static final int BOTTOM = 2;
  14.    int orientation;
  15.    int vAlign;
  16.    int vHGap;
  17.    int vVGap;
  18.  
  19.    public OrientableFlowLayout() {
  20.       this(0, 1, 1, 5, 5, 5, 5);
  21.    }
  22.  
  23.    public OrientableFlowLayout(int var1) {
  24.       this(var1, 1, 1, 5, 5, 5, 5);
  25.    }
  26.  
  27.    public OrientableFlowLayout(int var1, int var2, int var3) {
  28.       this(var1, var2, var3, 5, 5, 5, 5);
  29.    }
  30.  
  31.    public OrientableFlowLayout(int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  32.       super(var2, var4, var5);
  33.       this.orientation = var1;
  34.       this.vAlign = var3;
  35.       this.vHGap = var6;
  36.       this.vVGap = var7;
  37.    }
  38.  
  39.    public synchronized void orientHorizontally() {
  40.       this.orientation = 0;
  41.    }
  42.  
  43.    public synchronized void orientVertically() {
  44.       this.orientation = 1;
  45.    }
  46.  
  47.    public Dimension preferredLayoutSize(Container var1) {
  48.       if (this.orientation == 0) {
  49.          return super.preferredLayoutSize(var1);
  50.       } else {
  51.          Dimension var2 = new Dimension(0, 0);
  52.          int var3 = var1.countComponents();
  53.  
  54.          for(int var4 = 0; var4 < var3; ++var4) {
  55.             Component var5 = var1.getComponent(var4);
  56.             if (var5.isVisible()) {
  57.                Dimension var6 = var5.preferredSize();
  58.                var2.width = Math.max(var2.width, var6.width);
  59.                if (var4 > 0) {
  60.                   var2.height += this.vVGap;
  61.                }
  62.  
  63.                var2.height += var6.height;
  64.             }
  65.          }
  66.  
  67.          Insets var7 = var1.insets();
  68.          var2.width += var7.left + var7.right + this.vHGap * 2;
  69.          var2.height += var7.top + var7.bottom + this.vVGap * 2;
  70.          return var2;
  71.       }
  72.    }
  73.  
  74.    public Dimension minimumLayoutSize(Container var1) {
  75.       if (this.orientation == 0) {
  76.          return super.minimumLayoutSize(var1);
  77.       } else {
  78.          Dimension var2 = new Dimension(0, 0);
  79.          int var3 = var1.countComponents();
  80.  
  81.          for(int var4 = 0; var4 < var3; ++var4) {
  82.             Component var5 = var1.getComponent(var4);
  83.             if (var5.isVisible()) {
  84.                Dimension var6 = var5.minimumSize();
  85.                var2.width = Math.max(var2.width, var6.width);
  86.                if (var4 > 0) {
  87.                   var2.height += this.vVGap;
  88.                }
  89.  
  90.                var2.height += var6.height;
  91.             }
  92.          }
  93.  
  94.          Insets var7 = var1.insets();
  95.          var2.width += var7.left + var7.right + this.vHGap * 2;
  96.          var2.height += var7.top + var7.bottom + this.vVGap * 2;
  97.          return var2;
  98.       }
  99.    }
  100.  
  101.    public void layoutContainer(Container var1) {
  102.       if (this.orientation == 0) {
  103.          super.layoutContainer(var1);
  104.       } else {
  105.          Insets var2 = var1.insets();
  106.          Dimension var3 = var1.size();
  107.          int var4 = var3.height - (var2.top + var2.bottom + this.vVGap * 2);
  108.          int var5 = var2.left + this.vHGap;
  109.          int var6 = 0;
  110.          int var7 = 0;
  111.          int var8 = 0;
  112.          int var9 = var1.countComponents();
  113.  
  114.          for(int var10 = 0; var10 < var9; ++var10) {
  115.             Component var11 = var1.getComponent(var10);
  116.             if (var11.isVisible()) {
  117.                Dimension var12 = var11.preferredSize();
  118.                var11.resize(var12.width, var12.height);
  119.                if (var6 != 0 && var6 + var12.height > var4) {
  120.                   this.moveComponents(var1, var5, var2.top + this.vVGap, var7, var4 - var6, var8, var10);
  121.                   var5 += this.vHGap + var7;
  122.                   var6 = var12.width;
  123.                   var7 = var12.width;
  124.                   var8 = var10;
  125.                } else {
  126.                   if (var6 > 0) {
  127.                      var6 += this.vVGap;
  128.                   }
  129.  
  130.                   var6 += var12.height;
  131.                   var7 = Math.max(var7, var12.width);
  132.                }
  133.             }
  134.          }
  135.  
  136.          this.moveComponents(var1, var5, var2.top + this.vVGap, var7, var4 - var6, var8, var9);
  137.       }
  138.  
  139.    }
  140.  
  141.    private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  142.       switch (this.vAlign) {
  143.          case 0:
  144.          default:
  145.             break;
  146.          case 1:
  147.             var3 += var5 / 2;
  148.             break;
  149.          case 2:
  150.             var3 += var5;
  151.       }
  152.  
  153.       for(int var8 = var6; var8 < var7; ++var8) {
  154.          Component var9 = var1.getComponent(var8);
  155.          Dimension var10 = var9.size();
  156.          if (var9.isVisible()) {
  157.             var9.move(var2 + (var4 - var10.width) / 2, var3);
  158.             var3 += this.vVGap + var10.height;
  159.          }
  160.       }
  161.  
  162.    }
  163.  
  164.    public String toString() {
  165.       String var1 = "";
  166.       switch (this.orientation) {
  167.          case 0:
  168.             var1 = "orientation=horizontal, ";
  169.             break;
  170.          case 1:
  171.             var1 = "orientation=vertical, ";
  172.       }
  173.  
  174.       return this.getClass().getName() + "[" + var1 + super.toString() + "]";
  175.    }
  176. }
  177.